iT邦幫忙

2024 iThome 鐵人賽

DAY 7
0

昨天幫我們的 Repo 加了 License,接下來今天要來介紹如何把 Github 上面的程式碼拉到我們本地端(Local),也是從網路上把程式碼下載回到我們的電腦進行修改與編輯。之後我們就可以在本地端開發完後就能再上傳回 Github。如果以後有其他人一起開發這個開源,也可以這樣下載別人完成的部分到我們電腦。

Git

在那之前,要先跟大家介紹 Git 這個工具,簡單來說他是 Github 運行的基礎,同時也是我們在開發的時候使用的版本控制工具。在我們開發的時候,有時候除了我們自己在開發的時候會有不同的版本,也會有不同工程師一起開發的時候,他們也會有各自的版本。以前我們在管理這些版本時,可能會用命名的方式,像是 code_v2 來代表第二版,或是 code_2024_09_21 代表是今天 2024/09/21 的版本。但是這樣會有個問題,隨著開發不斷的進行,程式碼也會越來越龐大,不斷複製新版本會十分佔空間,另一個就是假設兩個人同時開發同一個地方的程式碼,最後要用誰的,要怎麼合併或是刪除也是個問題。這時候,Git 這個工具出來了,他會產生一個 .git 在目標的資料夾,然後在每次修改的時候,會透過他的 diff 功能,判斷哪些檔案有哪些改動,之後使用者就能用 commit 就紀錄那些改動。檔案的 diff 可以參考下圖(來源是我在 pybaseball 開的 Pull Request,之後會解釋什麼是 Pull Request):
https://ithelp.ithome.com.tw/upload/images/20240921/20163024h7qC2EAyGi.png

範例顯示的結果就是我把原本第 14 行的程式碼改成 右邊 14, 15 行的程式碼。

Git Tree

另外還有一點,Git 還有一個 分支(Branch) 的概念,可以想像我們整個專案是一棵樹(Tree),那有一個主要的枝幹叫 main,我們要修改別的版本,可以從 main 長出其他 branch,等在 branch 裡開發完,就能 合併(Merge) 回我們的主幹。中間在分支的開發不會影響到主幹,只有等要合併的時候才會檢查修改的部分,確認沒問題程式碼就能回主幹,讓我們的主幹是全新的程式碼。如果檢查不成功,那就代表分支的程式碼跟主幹的程式碼有衝突(Conflict),可能的原因就是同一區塊的修改有兩種不同版本,因為有可能有複數的分支同時進行修改,這時後就要先決定要用哪個版本進主幹來解除衝突。
介紹完 Git 的基本要素,回到我們的剛創建的 Repo ,就可以看到目前我們能使用的 Branch 目前只有 main,之後我們開發可能就會開其他的分支,就能在這邊查詢:
https://ithelp.ithome.com.tw/upload/images/20240921/20163024fFw3tKp1rK.png

Git 我認為是一個現今非常重要的技術,很推薦大家去熟悉他,這邊也推薦一些不錯的網站:

下載 Git

接下來介紹如何下載 git,這邊簡單介紹一下各個環境如何下載:

Mac

如果是使用 Mac,要下載 git 很簡單,只要打開終端器,輸入下面的指令就能下載好了:

// 下載 homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

// 使用 Homebrew 下載 Git
brew install git
// 查看當前 Git 版本
git --version

Linux/UNIX(Ubuntu)

如果是 Linux 系統,一樣開啟終端機,執行下面的指令便可下載完成:

apt-get install git

git --version

Windows

Windows 的話會推薦 Github for Windows 的圖形化介面(GUI),他不但會下載 Git,也可會有個介面讓使用者在上面操作 Git 的指令,其實 Mac 等其他的也有 GUI,比較習慣使用圖形介面的人可以參考 GitHub Desktop

各環境下載先介紹到這邊,不過其實可能還有很多方式能下載,篇幅問題不一一介紹了,不過這邊也一樣有參考網站提供給大家參考看看,如果我有沒介紹到的系統也許就能從中找到:

本日小結

今天介紹了一個不管是程式開發或是參與開源都很重要的工具 Git,希望大家都安裝的順利。原本還預計一起介紹如何把程式碼拉到本地端,但後來寫一寫發現篇幅安排到明天跟 Git 指令一起介紹會比較好,所以只好讓大家等到下一篇了。
最後一樣感謝大家耐心地看完,如果有任何問題與建議歡迎直接在留言讓我知道,明天見 掰掰


上一篇
Day 06 - Open Source License
下一篇
Day 08 - 用 Git 指令 下載 Repo 到本地端
系列文
上次介紹的棒球套件很少更新了,那就只好自己寫一個!?31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言